package cn.ywang.concurrent;

import cn.ywang.concurrent.model.Task;

import java.util.List;

/**
 * @author BeatificWang
 * @date 2019/7/21 15:26
 */
public class TaskRunner {

	/**
	 * 同步执行单个任务
	 *
	 * @param taskList 任务列表
	 */
	public void synchronizedTaskRunner(List<Task> taskList) {
		long start = System.currentTimeMillis();
		for (Task task : taskList) {
			CaseRunner.runCase(task);
		}
		long end = System.currentTimeMillis();
		System.out.println("同步执行耗时（s）:" + ((end - start) / 1000));
	}

	/**
	 * 并发执行多个任务
	 *
	 * @param taskList 任务列表
	 */
	public void concurrentTaskRunner(List<Task> taskList) {
		long start = System.currentTimeMillis();
		for (Task task : taskList) {
			new Thread(() -> {
				CaseRunner.runCase(task);
			}).start();
		}
		long end = System.currentTimeMillis();
		System.out.println("并发执行耗时（s）:" + ((end - start) / 1000));
	}

}
